package models

import (
	"fmt"
	"gorm.io/gorm"
)

/**
 * @Author huchao
 * @Description //TODO 定义请求参数结构体
 * @Date 22:09 2022/2/10
 **/
type User struct {
	UserID   uint64 `gorm:"type:bigint(20);column:user_id;not null" json:"user_id,string"` // 指定json序列化/反序列化时使用小写user_id
	UserName string `gorm:"type:varchar(64);column:username;not null" json:"username"`
	Password string `gorm:"type:varchar(64);column:password;not null" json:"password"`
} // GORM 第一步: 添加 gorm 标签 (此结构体中不能有数据库表中没有的字段)

// GORM 第二步: TableName 会将 User 的表名重写为 `user`
func (User) TableName() string {
	return "user"
}

func (u *User) BeforeCreate(tx *gorm.DB) (err error) {
	fmt.Println("User对象的钩子--BeforeCreate()！")
	return
}

/**
 * @Author SSWANG
 * @Description //TODO 注册请求参数
 * @Date 20:54 2022/10/27
 **/
type SignForm struct {
	UserName        string `json:"username" binding:"required"`
	Password        string `json:"password" binding:"required"`
	ConfirmPassword string `json:"confirm_password" binding:"required,eqfield=Password"`
}

/**
 * @Author SSWANG
 * @Description //TODO 登录请求参数
 * @Date 14:37 2022/10/28
 **/
type LoginForm struct {
	UserName string `json:"username" binding:"required"`
	Password string `json:"password" binding:"required"`
}
